<?php

namespace catchAdmin\settlement\model;

use catchAdmin\settlement\model\search\InvoiceSearch;
use catcher\base\CatchModel;
/**
 *
 * @property int $id
 * @property string $invoice_num
 * @property string $settlement_unit
 * @property string $invoice_header
 * @property string $taxpayer
 * @property string $address
 * @property string $telephone
 * @property string $bank
 * @property string $account
 * @property string $invoice_type
 * @property string $invoicing_company
 * @property string $invoice_status
 * @property date $cancel_date
 * @property string $invoicing_ask
 * @property int $stream_num
 * @property string $rmb_dx
 * @property string $rmb_xe
 * @property string $exchange_rate
 * @property string $tax_rate
 * @property int $tenant_id
 * @property int $creator_id
 * @property int $created_at
 * @property int $updated_at
 * @property int $deleted_at
 */
class Invoice extends CatchModel
{
    use InvoiceSearch;
    
    public $field = [
        // ID
        'id',
        // 发票号
        'invoice_num',
        // 结算单位
        'settlement_unit',
        // 发票抬头
        'invoice_header',
        // 纳税人识别号
        'taxpayer',
        // 地址
        'address',
        // 电话
        'telephone',
        // 开户行
        'bank',
        // 银行账号
        'account',
        // 发票类型:1.货运代理发票
        'invoice_type',
        // 开票公司
        'invoicing_company',
        // 发票状态:1.NEW
        'invoice_status',
        // 核销日期
        'cancel_date',
        // 开票要求
        'invoicing_ask',
        // 流水号
        'stream_num',
        // 人民币大写
        'rmb_dx',
        // 人民币小写
        'rmb_xe',
        // 汇率
        'exchange_rate',
        // 税率
        'tax_rate',
        // 商户
        'tenant_id',
        // 创建人id
        'creator_id',
        // 创建时间
        'created_at',
        // 更新时间
        'updated_at',
        // 删除时间
        'deleted_at',
        //工作号
        'job_number'
    ];
    
    public $name = 'db_invoice';
    /**
     * 列表
     * @throws \think\db\exception\DbException
     * @return \think\Paginator
     */
    public function getList($tenant_id = 0)
    {
        $where = [];
        if($tenant_id != 0){
            $where[]=['tenant_id','=',$tenant_id];
        }
        return $this->catchSearch()
            ->order('id','desc')
            ->where($where)
            ->withoutField('tenant_id,creator_id,updated_at,deleted_at,created_at')
            ->paginate();
    }
}